package effect.character.area;

import board.PatternType;
import effect.EffectType;

public enum AreaCharacterEffectEnum {
    EXPLOSION	    ("Explosion", EffectType.DAMAGE, 5, PatternType.CIRCLE, 4, PatternType.DIAMOND, 1, 4, 0),
    LIGHTNING	    ("Lightning", EffectType.DAMAGE, 8, PatternType.CROSS, 5, PatternType.LINE, -1, 9, 0),
    MASS_HEAL	    ("Mass Heal", EffectType.HEALING, 6, PatternType.DIAMOND, 5, PatternType.SQUARE, 1, 6, 0),
    POISON_CLOUD    ("Poison Cloud", EffectType.STATUS, 8, PatternType.SQUARE, 4, PatternType.SQUARE, 2, 3, 3)
    ;

    protected String effectName;
    protected EffectType effectType;
    protected int baseSpeed;
    protected PatternType rangePattern;
    protected int rangeSize;
    protected PatternType effectPattern;
    protected int effectSize;
    protected float baseEffectAmount;
    protected int baseDuration;

    private AreaCharacterEffectEnum(String effectName, EffectType effectType, int baseSpeed, PatternType rangePattern, int rangeSize, PatternType effectPattern, int effectSize, float baseEffectAmount, int baseDuration) {
	this.effectName = effectName;
	this.effectType = effectType;
	this.baseSpeed = baseSpeed;
	this.rangePattern = rangePattern;
	this.rangeSize = rangeSize;
	this.effectPattern = effectPattern;
	this.effectSize = effectSize;
	this.baseEffectAmount = baseEffectAmount;
	this.baseDuration = baseDuration;
    }

    public String getEffectName() {
	return effectName;
    }
    public EffectType getEffectType() {
	return effectType;
    }
    public int getBaseSpeed() {
	return baseSpeed;
    }
    public PatternType getRangePattern() {
	return rangePattern;
    }
    public int getRangeSize() {
	return rangeSize;
    }
    public PatternType getEffectPattern() {
	return effectPattern;
    }
    public int getEffectSize() {
	return effectSize;
    }
    public float getBaseEffectAmount() {
	return baseEffectAmount;
    }
    public int getBaseDuration() {
	return baseDuration;
    }
}
